package com.eonmind.user.service;

import com.eonmind.common.contract.data.response.PageResponse;
import com.eonmind.user.contract.dto.UserInfoData;
import com.eonmind.user.dto.UserDto;
import jakarta.servlet.http.HttpServletRequest;

public interface UserService {
    /**
     * 用户注册
     *
     * @param userRegisterRequest 用户信息
     * @return 注册结果
     */
    boolean register(UserDto.UserRegisterRequest userRegisterRequest);

    /**
     * 用户登录
     *
     * @param userLoginRequest 用户信息
     * @return 登录token
     */
    UserDto.UserLoginResponse login(UserDto.UserLoginRequest userLoginRequest, HttpServletRequest request);

    /**
     * 用户修改密码
     *
     * @param userUpdateRequest 用户信息
     * @return 更新结果
     */
    boolean update(UserDto.UserUpdateRequest userUpdateRequest);

    /**
     * 发送验证码
     *
     * @param email 用户邮箱
     */
    void sendRegisterVerificationCode(String email);

    /**
     * 发送修改密码验证码
     *
     * @param email 用户邮箱
     */
    void sendUpdateVerificationCode(String email);

    /**
     * 分页查询用户登录记录
     *
     * @param userInfoData
     * @param userLoginRecordPageRequest
     * @return
     */
    PageResponse<UserDto.UserLoginRecordData> pageUserLoginRecord(UserInfoData userInfoData, UserDto.UserLoginRecordPageRequest userLoginRecordPageRequest);
}